plist拆分 | 您所在的位置:网站首页 › plist python › plist拆分 |
#!python importos,sysimportplistlibfrom PIL importImagedefgen_png_from_plist(plist_filename, png_filename): file_path= plist_filename.replace(‘.plist‘, ‘‘) big_image=Image.open(png_filename) root=plistlib.readPlist(plist_filename) frames= root[‘frames‘] to_list= lambda x: x.replace(‘{‘,‘‘).replace(‘}‘,‘‘).split(‘,‘) to_int= lambdax:int(x)for frame inframes: framename= frame.replace(‘.png‘, ‘‘) size=frames[frame].sourceColorRect size=to_list(size) size=map(to_int, size) spriteSize=frames[frame].sourceSize spriteSize=to_list(spriteSize) spriteSize=map(to_int, spriteSize) textureRect=frames[frame].frame textureRect=to_list(textureRect) textureRect=map(to_int, textureRect) result_box=textureRect result_image= Image.new(‘RGBA‘, spriteSize, 0)ifframes[frame].rotated: result_box[0]=int(textureRect[0]) result_box[1] = int(textureRect[1]) result_box[2] = int(textureRect[0] + textureRect[3]) result_box[3] = int(textureRect[1] + textureRect[2])else: result_box[0]=int(textureRect[0]) result_box[1] = int(textureRect[1]) result_box[2] = int(textureRect[0] + textureRect[2]) result_box[3] = int(textureRect[1] + textureRect[3])#print(result_box, frames[frame].rotated, frame) rect_on_big=big_image.crop(result_box)ifframes[frame].rotated: rect_on_big=rect_on_big.transpose(Image.ROTATE_90) result_image.paste(rect_on_big)if notos.path.isdir(file_path): os.mkdir(file_path) outfile= (file_path+‘/‘ + framename+‘.png‘)print outfile, "generated"result_image.save(outfile)if __name__ == ‘__main__‘: filename= sys.argv[1] plist_filename= filename + ‘.plist‘png_filename= filename + ‘.png‘ if (os.path.exists(plist_filename) andos.path.exists(png_filename)): gen_png_from_plist( plist_filename, png_filename )else:print "make sure you have boith plist and png files in the same directory" |
CopyRight 2018-2019 实验室设备网 版权所有 |